/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package suministros.ejb30.entity;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;

/**
 *
 * @author Luis_Angel
 */
@Entity
@Table(name = "Proyecto")
@NamedQueries({
    @NamedQuery(name = "Proyecto.findAll", query = "SELECT p FROM Proyecto p"),
    @NamedQuery(name = "Proyecto.findByIdProyecto", query = "SELECT p FROM Proyecto p WHERE p.idProyecto = :idProyecto"),
    @NamedQuery(name = "Proyecto.findByNomProyecto", query = "SELECT p FROM Proyecto p WHERE p.nomProyecto = :nomProyecto"),
    @NamedQuery(name = "Proyecto.findByAlta", query = "SELECT p FROM Proyecto p WHERE p.alta = :alta"),
    @NamedQuery(name = "Proyecto.findByCodigoProyectoWeb", query = "SELECT p FROM Proyecto p WHERE p.codigoProyectoWeb = :codigoProyectoWeb"),
    @NamedQuery(name = "Proyecto.findByMontoTotal", query = "SELECT p FROM Proyecto p WHERE p.montoTotal = :montoTotal"),
    @NamedQuery(name = "Proyecto.findByMontoUtilizado", query = "SELECT p FROM Proyecto p WHERE p.montoUtilizado = :montoUtilizado"),
    @NamedQuery(name = "Proyecto.findBySnip", query = "SELECT p FROM Proyecto p WHERE p.snip = :snip"),
    @NamedQuery(name = "Proyecto.findByRucEmpresa", query = "SELECT p FROM Proyecto p WHERE p.rucEmpresa = :rucEmpresa")})
public class Proyecto implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @Basic(optional = false)
    @Column(name = "id_proyecto")
    private String idProyecto;
    @Basic(optional = false)
    @Column(name = "nom_proyecto")
    private String nomProyecto;
    @Column(name = "alta")
    private Boolean alta;
    @Column(name = "codigo_proyecto_web")
    private Integer codigoProyectoWeb;
    @Column(name = "monto_total")
    private BigDecimal montoTotal;
    @Column(name = "monto_utilizado")
    private BigDecimal montoUtilizado;
    @Column(name = "SNIP")
    private String snip;
    @Column(name = "ruc_empresa")
    private String rucEmpresa;
    @OneToMany(mappedBy = "idProyecto")
    private List<Pedido> pedidoList;
    @JoinColumn(name = "id_cod_presupuestal", referencedColumnName = "id_cod_presupuestal")
    @ManyToOne(optional = false)
    private CodPresupuestal idCodPresupuestal;
    @JoinColumn(name = "id_cod_inversion", referencedColumnName = "id_cod_inversion")
    @ManyToOne(optional = false)
    private CodigosInversion idCodInversion;
    @JoinColumn(name = "id_cuenta_contable", referencedColumnName = "id_cuenta_contable")
    @ManyToOne(optional = false)
    private CuentaContable idCuentaContable;

    public Proyecto() {
    }

    public Proyecto(String idProyecto) {
        this.idProyecto = idProyecto;
    }

    public Proyecto(String idProyecto, String nomProyecto) {
        this.idProyecto = idProyecto;
        this.nomProyecto = nomProyecto;
    }

    public String getIdProyecto() {
        return idProyecto;
    }

    public void setIdProyecto(String idProyecto) {
        this.idProyecto = idProyecto;
    }

    public String getNomProyecto() {
        return nomProyecto;
    }

    public void setNomProyecto(String nomProyecto) {
        this.nomProyecto = nomProyecto;
    }

    public Boolean getAlta() {
        return alta;
    }

    public void setAlta(Boolean alta) {
        this.alta = alta;
    }

    public Integer getCodigoProyectoWeb() {
        return codigoProyectoWeb;
    }

    public void setCodigoProyectoWeb(Integer codigoProyectoWeb) {
        this.codigoProyectoWeb = codigoProyectoWeb;
    }

    public BigDecimal getMontoTotal() {
        return montoTotal;
    }

    public void setMontoTotal(BigDecimal montoTotal) {
        this.montoTotal = montoTotal;
    }

    public BigDecimal getMontoUtilizado() {
        return montoUtilizado;
    }

    public void setMontoUtilizado(BigDecimal montoUtilizado) {
        this.montoUtilizado = montoUtilizado;
    }

    public String getSnip() {
        return snip;
    }

    public void setSnip(String snip) {
        this.snip = snip;
    }

    public String getRucEmpresa() {
        return rucEmpresa;
    }

    public void setRucEmpresa(String rucEmpresa) {
        this.rucEmpresa = rucEmpresa;
    }

    public List<Pedido> getPedidoList() {
        return pedidoList;
    }

    public void setPedidoList(List<Pedido> pedidoList) {
        this.pedidoList = pedidoList;
    }

    public CodPresupuestal getIdCodPresupuestal() {
        return idCodPresupuestal;
    }

    public void setIdCodPresupuestal(CodPresupuestal idCodPresupuestal) {
        this.idCodPresupuestal = idCodPresupuestal;
    }

    public CodigosInversion getIdCodInversion() {
        return idCodInversion;
    }

    public void setIdCodInversion(CodigosInversion idCodInversion) {
        this.idCodInversion = idCodInversion;
    }

    public CuentaContable getIdCuentaContable() {
        return idCuentaContable;
    }

    public void setIdCuentaContable(CuentaContable idCuentaContable) {
        this.idCuentaContable = idCuentaContable;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (idProyecto != null ? idProyecto.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Proyecto)) {
            return false;
        }
        Proyecto other = (Proyecto) object;
        if ((this.idProyecto == null && other.idProyecto != null) || (this.idProyecto != null && !this.idProyecto.equals(other.idProyecto))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "suministros.ejb30.entity.Proyecto[idProyecto=" + idProyecto + "]";
    }

}
